package com.hengpeng.msls.service.activity;

import java.util.List;

import com.hengpeng.common.exception.ServiceResult;
import com.hengpeng.itfinbase.en.RewardRebateStatus;
import com.hengpeng.itfinbase.en.RewardRedPacketStatus;
import com.hengpeng.itfinbase.persist.Activity;
import com.hengpeng.itfinbase.persist.Reward;
import com.hengpeng.itfinbase.persist.RewardRebate;
import com.hengpeng.itfinbase.persist.WechatMerchant;
import com.hengpeng.msls.vo.activity.RewardRedpacketVo;

/**
 * 活动服务
 * 
 * @author Administrator
 *
 */
public interface ActivityService {

    /**
     * 
     * @param indexPage
     * @param pageSize
     * @return
     */
    public ServiceResult<List<Activity>> selectActivityPage(int indexPage, int pageSize);

    public List<Reward> getRewardsByActivityId(Long id);

    public Activity getActivityById();

    public WechatMerchant getWechatMerchantByappId(String merchantId);
    
    /**
     * 根据用户名、不同状态获取红包总额
     * @param userId
     * @param stastus
     * @return
     */
    public String getRegRedpacketTotalAmountByUserNameAndStatus(String userName, RewardRedPacketStatus[] stastus);

    public ServiceResult<List<RewardRedpacketVo>> findRegRedpacketByStatus(Long userId, int type, int curPage, int pageSize);

    ServiceResult<List<RewardRedpacketVo>> findRewardRedpacket(Long userId, RewardRedPacketStatus status, int curPage,
            int pageSize);

    /**
     * 根据返利状态查找返利列表
     * @param userId
     * @param status
     * @param curPage
     * @param pageSize
     * @return
     */
    public ServiceResult<List<RewardRebate>> findRewardRebate(Long userId,int curPage,int pageSize);
    
    /**
     * 根据邀请码查出第三级邀请人数
     */
    public Long getFirstInviteCount(String recommendCode);
    /**
     * 根据邀请码查出第三级邀请人数
     */
    public Long getSecondInviteCount(String recommendCode);
    /**
     * 根据邀请码查出第三级邀请人数
     */
    public Long getThirdInviteCount(String recommendCode);
    /**
     * 查询用户返利已返金额
     */
    public Long getPaidMoney(Long userId);
    /**
     * 查询用户返利未返金额
     */
    public Long getUnpayMoney(Long userId);
}
